var http = require('http')

var fs = require('fs')

// 1.创建 Server
var server = http.createServer()


// 2.监听 Server 的 request 请求事件，设置请求处理函数

var wwwDir = 'C:/app/www'

server.on('request',function(req,res){
	var url = req.url
	
	fs.readFile('./template.html', function (err, data) {
		if (err) {
			return res.end('404 Not Found')
		} 
		// 1.如何得到 wwwDir 目录列表中的文件名和目录名
		// fs.readdir
		// 2.如何将得到的文件名和目录名替换到 template.html 中
		//  	2.1 在 template.html 中需要替换的位置预留一个特殊的标记
		//  	（就像以前使用模板引擎的标记一样）
		//  	2.2 根据 files 生成需要的 HTML 内容
		// 只要完成了这两件事，问题就解决了
		fs.readdir(wwwDir, function (err, files) {
			if (err) {
				return res.end('Can not find www dir.')
			}

			// 生成需要替换的内容
			var content = ''
			files.forEach(function (item) {
				// 在 ES 6 的 ` 字符串中，可以使用 ${} 来引用变量
				content += `
				<tr>
				<td data-value="apple/">
				<a class="icon dir" href="/C:/node/day02/code/template.html/apple/">${item}/</a>
				</td>
				<td class="detailsColumn" data-value="0">
				</td>
				<td class="detailsColumn" data-value="1575512746">2019/12/5 上午10:25:46
				</td>
				</tr>`
			})
			// 2.3 替换
			data = data.toString()

			// 普通的字符串解析替换，浏览器看到的结果就不一样了
			data = data.replace('haha',content)

			// 3.发送解析替换过后的响应数据
			res.end(data)
		})

	})
})

// 3.绑定端口号，启动服务
server.listen(3000,function(){
	console.log('running.......')
})